/* Copyright [2023] <gyl> */
#pragma once

#include <memory>
#include <vector>

#include "sql/operator/logical_operator.h"
#include "sql/parser/parse_defs.h"

class OrderLogicalOperator : public LogicalOperator {
 public:
  explicit OrderLogicalOperator(std::vector<OrderBySqlNode> orders);
  virtual ~OrderLogicalOperator() = default;

  LogicalOperatorType type() const override {
    return LogicalOperatorType::ORDER;
  }
  std::vector<OrderBySqlNode> orders() { return orders_; }

 private:
  std::vector<OrderBySqlNode> orders_;
};
